# Install list format

The install list is used to save a list of the installed packages, paths and sources.

The simplest way to create an install list is to use the "Save Install List" option from the Advanced menu. This saves a list of all the current installed packages, paths and sources.

The file is a text file in an XML format that can be created/edited by hand.

The tags used in the file are:

- packagelist - encloses the rest of the file. It has one attribute "version" that gives the version of this file. This should be "1" for the current release of PackMan.
- sources - encloses one or more source tags that determines where PackMan downloads the package lists from.
- source - specifies one source. Must be a child of the sources tag. It has one attribute "url" which it the URL used to locate a package list.
- paths - enclosed one or more path tags that sets the mapping between logical and physical paths.
- path - specifies the mapping between one logical path and a physical path. Must be a child of the paths tag. The attribute "logical" specifies the logical path to add. The attribute "physical" specifies the location on disc that logical path is mapped to. The physical path is often saved relative to the RISC OS boot directory.
- packages - encloses one or more package tags.
- package - specifies a package that is installed. It has attributes "name", "version" and "auto". The "name" attribute is the name of the package, the "version" attribute gives the version of the package that is installed. The "auto" attribute is a flag that appears if the package was installed as a dependency. The package may have a components tags as it's child.
- components - enclosed one or more component tags. Must be a child of the package tag.
- component - specifies one component of a package and any flags it may have set. Must be a child of the components tag. The attribute "name" gives the logical path to the component in the package. It may also have one or more of the following flags specified as a flag name "look_at", "run" and "add_to_apps"

An example install list

`

    <packagelist version = "1">
       <sources>
          <source
              url = "http://packages.riscosopen.org/packages/pkg/programs-armv5" />
          <source
              url = "http://packages.riscosopen.org/packages/pkg/programs-armv7" />
       </sources>
       <paths>
          <path
            logical = "Apps"
            physical = "&lt;Boot$Dir&gt;.^.Apps"/>
          <path
            logical = "Apps.Admin.!PackMan"
            physical = "HostFS:$.Apps.Admin.!PackMan"/>
          <path
            logical = "Apps.Games"
            physical = "HostFS::HostFS.$.Apps.Games"/>
       </paths>
       <packages>
          <package name = "CircusLinux" version = "1.0.3-3">
             <components>
                <component name = "Apps.Games.!CircusLnx"/>
             </components>
          </package>
          <package name = "DRenderer" version = "0.56-r-1" auto/>
          <package name = "PackIt" version = "0.6-1">
             <components>
                <component name = "Apps.Development.!PackIt"/>
             </components>
          </package>
          <package name = "PackMan" version = "0.8.4-1">
             <components>
                <component name = "Apps.Admin.!PackMan"/>
             </components>
          </package>
          <package name = "Tabs" version = "0.12-1"/>
       </packages>
    </packagelist>

`